﻿// *************************************************************************************************
// Project: RealSense.Light.Contracts
// Namespace: RealSense.Light.Contracts
// File: ISpeechSynthesizerValidation.cs  Author: Peter O'Hanlon
// Copyright © Peter O'Hanlon 2014-2015
// Date: 2015/1/7 17:57
// *************************************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RealSense.Light.Contracts
{
  public interface ISpeechSynthesizerValidation
  {
    /// <summary>
    /// Determines whether or not the volume is in a valid range (0 to 100).
    /// </summary>
    /// <param name="volume">The proposed volume value</param>
    /// <returns>True if the volume is valid, false otherwise.</returns>
    bool IsValidVolume(int volume);

    /// <summary>
    /// Determines whether or not the pitch is in a valid range (50 to 200).
    /// </summary>
    /// <param name="pitch">The proposed pitch.</param>
    /// <returns>True if the pitch is valid, false otherwise.</returns>
    bool IsValidPitch(int pitch);

    /// <summary>
    /// Determines whether or not the speech rate is in a valid range (50 to 400).
    /// </summary>
    /// <param name="rate">The proposed speech rate.</param>
    /// <returns>True if the rate is valid, false otherwise.</returns>
    bool IsValidSpeechRate(int rate);
  }
}